package com.example.agent.repository;

import com.example.agent.entity.ChatInfo;
import org.springframework.stereotype.Repository;

import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Repository
public class InMemoryRepository implements ChatHistoryRepository {
    private Map<String, String> chatInfos = new LinkedHashMap<>();
    /*
     * 保存聊天记录
     * @param chatId 聊天id
     * @param title 聊天标题
     *如果是新会话，则创建新的
     *如果不是新会话，则更新
     */
    @Override
    public void save(String chatId, String title) {
        chatInfos.put(chatId,title);
    }

    @Override
    public void cleanByChatId(String chatId) {
        chatInfos.remove(chatId);
    }

    @Override
    public List<ChatInfo> getChats() {
        return chatInfos.entrySet()
                .stream()
                .map(e->new ChatInfo(e.getKey(),e.getValue()))
                .collect(Collectors.toList());
    }
}
